package com.j48.entrancegurad.mapper;

import com.j48.entrancegurad.model.Opinion;
import com.j48.entrancegurad.model.Picture;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;

/**
 * picture表操作
 */
@Repository
@Mapper
public interface PictureMapper {
    /**
     * 查询所有图片
     * @return 图片列表
     */
    @Select("select * from `picture`")
    public ArrayList<Picture> selectAll();
    /**
     * 查询所有可见图片
     * @return 可见图片列表
     */
    @Select("select * from `picture` where picture_status=1")
    public ArrayList<Picture> selectAllAble();
    /**
     * 查询图片
     * @param picture 查询条件
     * @return 查询结果
     */
    @Select("select * from `picture` where picture_id=#{picture_id}")
    public Opinion select(Picture picture);

    /**
     * 查询当前排序上限
     * @return 当前可见图片最大排序号
     */
    @Select("select count(picture_id) from `picture` where picture_status=1")
    public int queryorder();
    /**
     * 添加图片
     * @param picture 被添加的图片
     * @return 影响数据库数据条数
     */
    @Insert("insert into `picture`(picture_url,picture_createtime,picture_status) values (#{picture_url},#{picture_createtime},1)")
    public int insert(Picture picture);

    /**
     * 更新图片信息
     * @param picture 更新后的图片
     * @return 影响数据库数据条数
     */
    @Update("update `picture` set picture_url=#{picture_url} where picture_id=#{picture_id}")
    public int update(Picture picture);

    /**
     * 隐藏图片
     * @param picture 被隐藏图片
     * @return 影响数据库数据条数
     */
    @Update("update `picture` set picture_status=0 where picture_id=#{picture_id}")
    public int hide(Picture picture);
    /**
     * 显示图片
     * @param picture 被显示图片
     * @return 影响数据库数据条数
     */
    @Update("update `picture` set picture_status=1 where picture_id=#{picture_id}")
    public int release(Picture picture);

    /**
     * 删除图片
     * @param picture 被删除图片
     * @return 影响数据库数据条数
     */
    @Delete("delete from `picture` where picture_id=#{picture_id}")
    public int delete(Picture picture);
}
